<?php

function CSetDebug() {
	define ('kCDebug', true);
}

function CIsDebugging() {
	return extension_loaded('xdebug') || @constant(kCDebug);
}

function CLog(&$x, $message = null) {
	if (!CIsDebugging()) return;
	
	if (!is_string($x))
		$text = CDump($x);
	else
		$text = $x;
	CMessage("[$message]: $text");
}

function CDump(&$x) {
	ob_start(); 
	if (function_exists('xdebug_debug_zval'))
		xdebug_debug_zval('x');
	else
		var_dump($x);
	return ob_get_clean();
}

function CMessage($x) {
	$msgFunc = @constant('kCMessageFunction');
	if (!$msgFunc) $msgFunc = 'error_log';
	
	$msgFunc($x . "\n");
}

?>